1. Statement of the Technical Field
The present invention relates to application sharing, and more particularly to updating displays across application sharing clients in a shared application system.
2. Description of the Related Art
The rapid development of the computer communications networks has led to advanced modes of communication and collaboration. Using computer communications networks such as the Internet as a backbone, individuals worldwide can converge in cyberspace to share ideas, documents and images in a manner not previously possible through conventional telephony and video conferencing. To facilitate collaboration over the Internet, a substantial collection of technologies and protocols have been assembled to effectively deliver audio, video and data over the single data communications medium of the Internet. These technologies include instant messaging, Internet telephony and application sharing.
In conventional application sharing, an application host can distribute imagery of an application operating in the host to one or more application viewers distributed about the computer communications network. The imagery can include not only the screens rendered in association with the operation of the shared application, but also the visual presentation of mouse pointer movements and the like. Generally, speaking, however, the imagery can include only discrete “snap-shots” of the actual display of the operating application in the host system. In this way, the application viewers can be given the appearance of sharing an application, though each viewer merely views a shadow rendering of only a portion of the operation of the shared application.
Application sharing technology allows the capturing of a series of images which represent the display of an application or even the display of an operating system desktop of a computing device. The images can be transmitted across the computer communications network, which when rendered, can provide the illusion of duplicating the display of the application in its host environment. Nevertheless, the underlying technology used to support application sharing in this manner includes substantial limitations in regard to the refreshing of application imagery during an application sharing session.
Specifically, to achieve certain processing resource conservation efficiencies, in conventional application sharing programs, an application screen image can be partitioned into different regions. Each region can be individually captured, scanned for changes, compressed and transmitted to application sharing clients. By partitioning an application screen into small, manageable portions, the responsiveness of the host application can be improved by performing processor intensive operations upon smaller chunks of data. Moreover, only those portions of the application screen image which have changed need be forwarded to application sharing clients, while the unchanged portions need not be transmitted at all.
In consequence of this clever technique for improving the performance of an application sharing program, it is presupposed that all changed aspects of a portion of an application screen image can be definitively bound by a discrete region of the screen image. In fact, however, in many circumstances a changed aspect of a portion of an application screen image can span multiple discrete regions of the screen image. Consequently, when a change in an application screen image is detected which spans multiple discrete regions of the application screen image, multiple changed portions of the screen image will be transmitted sequentially causing multiple, undesirable screen updates to occur in the application sharing clients. The resulting effect often has been referred to as the “blockiness” effect.